[WIP] Tree Wasserstein distances and Sliced Tree Wasserstein#821
Draft
Flastre wants to merge 14 commits into
Draft
[WIP] Tree Wasserstein distances and Sliced Tree Wasserstein#821Flastre wants to merge 14 commits into
Flastre wants to merge 14 commits into
Conversation
Codecov Report❌ Patch coverage is ❌ Your patch check has failed because the patch coverage (10.17%) is below the target coverage (50.00%). You can increase the patch coverage or adjust the target coverage. Additional details and impacted files@@ Coverage Diff @@
## master #821 +/- ##
==========================================
- Coverage 96.83% 96.27% -0.57%
==========================================
Files 128 130 +2
Lines 25376 25543 +167
==========================================
+ Hits 24574 24591 +17
- Misses 802 952 +150 🚀 New features to boost your workflow:
|
* correction SGOT cost matrix, added to contributor list, move sgot example to other * updated graphs * fix plots * update example * fix releases.md * reformating * updating format * updated format * updated format * added PR and references * aligned usage of solve and solve_batch + added batch tests * fixed example * Apply suggestions from code review Co-authored-by: Rémi Flamary <remi.flamary@gmail.com> --------- Co-authored-by: Sienna O'Shea <osheasienna@gmail.com> Co-authored-by: Rémi Flamary <remi.flamary@gmail.com>
…ythonOT#833) * fix label-aware cost correction in ot.da the cost correction that pushes apart differently-labeled samples was computed backwards. it used missing_ys = (ys == -1) and the product of the two missing masks, so the large cost was applied only where both labels are missing, and never where two labeled samples have different labels. with all labels known the correction was a no-op, so ys/yt had no effect on the transport (see PythonOT#664). switched to present masks (ys != -1) so the correction applies exactly to labeled source/target pairs whose labels differ, matching the original pre-vectorized loop. restored the semisupervised tests that had been flipped to assert the buggy no-op (n_unsup == n_semisup) back to asserting the cost actually changes, and added a regression test. closes PythonOT#664 * add PR number to releases entry * Apply suggestion from @rflamary * use MISSING_LABEL constant instead of bare -1 --------- Co-authored-by: Rémi Flamary <remi.flamary@gmail.com>
* nx version + update actions * add run on arm * use slim ubuntu * back to linux latest * reamp all tests * fix yaml * fix yaml * fix yaml * try it * validate yaml * speeup backen tests * remove doctest for beckend tests * remove cleanup space * separate doctests * fix cdoctest with proper cnftest * fix helpers * fix linux-torch test * remove torch version * fix doc build * fix doc build * fix doctests * move stuff around properly * gix doctest for the last time? * stuff * change version * pdate reelase + readme * update cff + readme * big rewrite release
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Wasserstein distances on trees.
In ot/lp/solver_tree.py : the function tree_wasserstein return the distance and the transport plan between two distributions on a tree
In ot/lp/tree_barycenter : the function tree_barycenter returns the barycenter between multiples distributions on a tree
I plan on adding a sliced version of the tree wasserstein distance, and maybe some functions to generate trees (as explained in the first article)
References :
Tree-Sliced Variants of Wasserstein Distances
Tree-Wasserstein Barycenter for Large-Scale Multilevel Clustering and Scalable Bayes